Numerous Internet applications require sending data in a one-to-many or a many-to-may user environment. Examples of applications that use multicasting are transmitting an e-mail message to multiple recipients, transmitting stock quotes to brokers, replicating databases, teleconferencing and videoconferencing. Internet Protocol (IP) multicast routing permits the transmission of data packets between a finite set of nodes which are members of a multicast group. Multicasting allows a source node to transmit a packet of multicast information (herein referred to as a “multicast packet”) simultaneously to all nodes in the multicast group using a single multicast address. Multicasting achieves an efficient transmission of data packets by enabling a source to send a single message to multiple designated recipients. Multicasting avoids bandwidth problems which result from point-to-point unicast data flows for similar applications. In addition, multicasting is more efficient than broadcasting data as the latter technique results in many uninterested nodes receiving the broadcast data.
FIG. 1 is a schematic diagram of a network environment 10 in which a multicast data flow is routed according to a shared tree distribution. The network environment includes a sender 14, a receiver 18, and a plurality of multicast routers 22, including a first-hop router 22A, a rendezvous point (RP) router 22B, and a designated router 22C. The shared tree is rooted at the RP router 22B. Although only three multicast routers 22 are illustrated, an intervening network 26 (e.g., Internet) can include one or more additional routers 22 to route the multicast data.
Multicast data from the sender 14 is transmitted to a plurality of receivers in a receiver group that includes the receiver 18. As illustrated, the multicast data flow from the sender 14 to the receiver 18 through the RP router 22B even though this path is not necessarily the shortest path. In response to one or more configuration parameters, the designated router 22C can initiate a switch to a shortest path (or “source-rooted”) distribution tree by sending JOIN messages towards the sender 14. For example, the distribution tree “switchover” can be initiated if the multicast traffic for a source group (S,G) exceeds a certain data rate threshold value. Therefore, the time required to change from the shared distribution tree to the shortest path distribution tree is determined by the operation of the designated router 22C. This time includes the time necessary to detect that the threshold is exceeded and the time required to perform the switchover. After the distribution tree switchover is initiated, the multicast data flow according to the shortest path between the sender 14 and the receiver 18 as illustrated in FIG. 2.
For many users reducing the latency in a multicast data flow is important. In many instances, the time required to switch from a shared tree to a shortest path tree is also critical. In particular, applications such as internet protocol television (IPTV) and stock quote feeds require low latency.
What is needed is a method to reduce the delay of multicast flow from a shared distribution tree to a shortest path distribution tree. The present invention satisfies this need and provides additional advantages.